import {ElMessage, ElMessageBox} from "element-plus";

/**
 * @description: 消息提示
 * @params:
 * @return:
 * @author: ajie
 * @date: 2024/7/10 17:58
 */
export function messageTip(msg,type){
    ElMessage({
        showClose: true,//是否显示关闭按钮
        center: true,//是否居中
        duration:3000,//显示时间,毫秒。设为 0 则不会自动关闭
        message: msg,//消息文字
        type: type,//消息类型  'success' | 'warning' | 'info' | 'error'
    })
}

/**
 * @description: 获取存储在sessionStorage或者localStorage中的token（jwt）的名字
 * @params:        
 * @return: 
 * @author: ajie
 * @date: 2024/7/10 18:00
 */
export function getTokenName(){
    return "dlyk_token";
}

/**
 * @description: 删除localStorage和sessionStorage中存储的token
 * @params:
 * @return:
 * @author: ajie
 * @date: 2024/7/10 22:36
 */
export function removeToken(){
    window.localStorage.removeItem(getTokenName());
    window.sessionStorage.removeItem(getTokenName());
}

/**
 * @description: 消息确认提示
 * @params:        
 * @return: 
 * @author: ajie
 * @date: 2024/7/12 17:13
 */
export function messageConfirm(msg){
     return ElMessageBox.confirm(
        msg,//提示语
        '系统提醒',//提示的标题
        {
            confirmButtonText: '确定',
            cancelButtonText: '取消',
            type: 'warning',
        }
    )
}

/**
 * @description: 封装返回函数
 * @params:        
 * @return: 
 * @author: ajie
 * @date: 2024/7/22 18:12
 */
export function goBack() {
    this.$router.go(-1);
}

/**
 * @description: 获取token
 * @params:        
 * @return: 
 * @author: ajie
 * @date: 2024/8/2 17:57
 */
export function getToken(){
    let token = window.sessionStorage.getItem(getTokenName());
    if (!token) {
        token = window.localStorage.getItem(getTokenName());
    }
    if (!token) {//两个地方都没拿到，说明在浏览器客户端没有登录
        messageConfirm("Token不存在, 是否重新去登录？").then(() => { //当点击“确定”按钮就执行该then函数
            //去重新登录，把浏览器的token清理一下
            removeToken()
            //跳到登录页
            window.location.href = "/";
        }).catch(() => { //当点击“取消”按钮就执行该catch函数
            messageTip("取消去登录", "warning");
        })
    } else {
        return token;
    }
}